// // 权限仓库文件
// import { defineStore } from "pinia";
// import { ref, shallowRef } from "vue";
// import { MyRouteTy, MyRoutesTy } from "~/router";
// import { userStore } from "./userStore";
// import local from "@/utils/auth.ts";
// import { constantRoutes } from "@/router/index.ts";
// import Layout from "@/layout/index.vue";
// export let usePermission = defineStore("usePermission", () => {
//   // 用来存储计算好的路由 用于左侧菜单动态渲染
//   let routes = shallowRef<MyRoutesTy>();

//   // 判断当前页面是否要获取用户信息
//   let isHaveUserInfo = ref<boolean>(false);
//   // 修改用户信息的状态
//   let setUserInfo = (flag: boolean) => {
//     isHaveUserInfo.value = flag;
//   };

//   let modules = import.meta.glob("@/views/**/*.vue");
//   console.log(11111111111, modules);

//   let getComponentByGlob = (path: string) => {
//     return modules["/src/views" + path + ".vue"];
//   };

//   // 计算过滤动态路由函数  核心函数!!!
//   let filterAsyncRoutes = (routes: any) => {
//     let res: MyRoutesTy = [];
//     routes.forEach((item: any) => {
//       if (item.component === "Layout") {
//         item.component = Layout;
//       } else {
//         // item.component = () => import(`@/views${item.component}.vue`);
//         item.component = getComponentByGlob(item.component);
//       }
//       // 如果有子路由递归处理子路由的路由对象
//       if (item.children?.length) {
//         item.children = filterAsyncRoutes(item.children);
//       }
//       res.push(item);
//     });

//     return res;
//   };
//   // 根据当前用户角色信息生成动态路由
//   let generateRoutes = () => {
//     return new Promise((resolve) => {
//       // 从pinia中获取到当前登录用户的角色
//       let $userStore = userStore();
//       // let role = $userStore.token;
//       // 动态路由表由后端提供
//       let asyncRoutes = $userStore.userinfo?.menu as unknown as MyRoutesTy;

//       // 调用过滤动态路由表的函数对路由表进行处理
//       let accessRoutes = filterAsyncRoutes(asyncRoutes);

//       console.log("59999accessRoutes", accessRoutes);

//       // 将计算好的路由存储在routes中
//       routes.value = [...constantRoutes, ...asyncRoutes];

//       resolve(accessRoutes);
//     });
//   };

//   return {
//     routes,
//     isHaveUserInfo,
//     filterAsyncRoutes,
//     generateRoutes,
//     setUserInfo,
//   };
// });
